activity_main.xml -------------------- Add a new Layout: mylist.xml ---------------------------------- For MainActivity.java use: ----------------------------- import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { ListView list; String[] maintitle ={ "Title 1","Title 2", "Title 3","Title 4", "Title 5", }; String[] subtitle ={ "Sub Title 1","Sub Title 2", "Sub Title 3","Sub Title 4", "Sub Title 5", }; Integer[] imgid={ R.drawable.download_1,R.drawable.download_2, R.drawable.download_3,R.drawable.download_4, R.drawable.download_5, }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyListAdapter adapter=new MyListAdapter(this, maintitle, subtitle,imgid); list=(ListView)findViewById(R.id.list); list.setAdapter(adapter); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view,int position, long id) { if(position == 0) { //code specific to first list item Toast.makeText(getApplicationContext(),"Place Your First Option Code",Toast.LENGTH_SHORT).show(); } else if(position == 1) { //code specific to 2nd list item Toast.makeText(getApplicationContext(),"Place Your Second Option Code",Toast.LENGTH_SHORT).show(); } else if(position == 2) { Toast.makeText(getApplicationContext(),"Place Your Third Option Code",Toast.LENGTH_SHORT).show(); } else if(position == 3) { Toast.makeText(getApplicationContext(),"Place Your Forth Option Code",Toast.LENGTH_SHORT).show(); } else if(position == 4) { Toast.makeText(getApplicationContext(),"Place Your Fifth Option Code",Toast.LENGTH_SHORT).show(); } } }); } } Add another class: MyListAdapter.java ---------------------------------------- import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; public class MyListAdapter extends ArrayAdapter { private final Activity context; private final String[] maintitle; private final String[] subtitle; private final Integer[] imgid; public MyListAdapter(Activity context, String[] maintitle,String[] subtitle, Integer[] imgid) { super(context, R.layout.mylist, maintitle); this.context=context; this.maintitle=maintitle; this.subtitle=subtitle; this.imgid=imgid; } public View getView(int position,View view,ViewGroup parent) { LayoutInflater inflater=context.getLayoutInflater(); View rowView=inflater.inflate(R.layout.mylist, null,true); TextView titleText = (TextView) rowView.findViewById(R.id.title); ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); TextView subtitleText = (TextView) rowView.findViewById(R.id.subtitle); titleText.setText(maintitle[position]); imageView.setImageResource(imgid[position]); subtitleText.setText(subtitle[position]); return rowView; }; } Download 5 icon images and change the names in the code. Drag icons to drawable folder Alternatively look for icon.jpg in the examples folder